package com.kaifamiao.jdbc.core;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 目标: 测试 executeUpdate "执行"DDL语句的返回结果
 * Statement 接口中的 executeUpdate(String) 方法
 * 如果"执行"的SQL语句是 DML语句 则返回 行计数 (即受SQL影响的记录数目)
 * 如果"执行"的SQL语句是无需返回的语句(比如DDL语句)，则该方法返回 零
 */
public class ResultHandling1 {

    public static void main(String[] args) {
        DbUtil du = DbUtil.getInstance();
        du.load();
        Connection conn = du.connect();
        Statement stmt = du.create( conn );

        try {
            // String drop = "DROP TABLE IF EXISTS t_pandas"; // MySQL
            String drop = "DROP TABLE t_pandas PURGE"; // Oracle
            int count = stmt.executeUpdate(drop);
            System.out.println(count);
        } catch ( SQLException e ) {
            System.out.println( "删除表时发生错误: " + e.getMessage() );
        }

        try {
            // MySQL
            // String create = "CREATE TABLE t_pandas ( id INT, name VARCHAR(20), PRIMARY KEY(id) )";

            // Oracle
            String create = "CREATE TABLE t_pandas ( id NUMBER(5), name VARCHAR2(20), PRIMARY KEY(id) )";
            int count = stmt.executeUpdate(create);
            System.out.println( count );
        } catch ( SQLException e ) {
            System.out.println( "创建表时发生错误: " + e.getMessage() );
        }

        du.release( stmt );
        du.release( conn );
    }

}
